package hdu1276;

import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.Scanner;

/*
hdu1276,1p79
输入数据：
2
20
40
输出：
1 7 19
1 19 37
 * */
public class UseLinkedList {
	//自定义链表与Java链表两种做法
	public static void main(String[] args) {
		int T,n;
		//链表
		List<Integer> a = new LinkedList<>();
		
		Scanner sc = new Scanner(System.in);
		T = sc.nextInt();
		
		//T大于0时继续循环，T自身减1
		while(T-- > 0) {
			n = sc.nextInt(); //初始士兵数量
			a.clear(); //清空链表
			
			//第一次删除喊2的士兵
			int k=2;
			//初始编号存入链表
			for(int i=1;i<=n;i++) {
				a.add(i);	
			}
			
			//链表长度大于3就继续删除士兵
			while(a.size()>3) {
				int cnt = 1;//当前报号的编号
				//遍历链表
				//使用迭代器遍历---正向遍历 
			    ListIterator<Integer> it = a.listIterator(); 
			    while(it.hasNext()) {
			    	//it指向链表当前项
			    	it.next();
			    	//判断当前报数是否到k的值
			    	//判断完后cnt自身加1
			    	if(cnt++%k==0) {
			    		//删除当前项
			    		it.remove();
			    	}
			    }
				//k在2和3之间切换
			    if(k==2) {
			    	k=3;
			    }else {
			    	k=2;
			    }
			}
			
			//输出当前的结果
			ListIterator<Integer> it = a.listIterator(); 
		    while(it.hasNext()) {
		    	if(it.hasPrevious())
		    		System.out.print(" ");
		    	System.out.print(it.next());
		    }
		    System.out.println();
		}
	}
}
